﻿//using ActivtyUI.App_Code;
//using ActivtyUI.Filter;
//using EmoneyWeiXinBLL;
//using EmoneyWeiXinCommon;
//using EmoneyWeiXinEntity;
//using System;
//using System.Collections.Generic;
//using System.Data;
//using System.Linq;
//using System.Web;
//using System.Web.Mvc;

//namespace ActivtyUI.Controllers
//{


//    /* 判断是否在微信浏览器中打开
//     * 必须获取当前的IP，阻止同一个Ip请求多次
//     * 抽奖结果在服务器中产生并保存。
//     * ajax必须加[httpPost]标记
//     * 
//     * 如果没有抽到奖，分享之后便拥有一次抽奖机会
//     * 
//     * */



//    /***
//     * 流程：
//     * 1.H5页面（易企秀），加(鉴权)链接跳转到活动页
//     * 2.活动页分享之后 分享链接为到分享接收页
//     * 3.活动页如果没有中奖，可以通过分享获取一次抽奖机会
//     * 4.我们提供分享接收页，记录分享者和被分享者
//     * 5.由分享页跳转到H5页面，
//     * */

//    /// <summary>
//    /// 
//    /// </summary>
//    public enum GiftEnum
//    {
//        None = 3, LaTiao = 5, TiaoTiaoTang = 2, DaLiBao = 1, DanGong = 4
//    }
//    public class NineMonthActiveController : Controller
//    {
//        string actName = "NineMonth";
//        string actDataPreFix = "NineMonthActData";
//        MemcachedTools1 mmtols = new MemcachedTools1();
//        static object lockObj = new object();
//        weixinUserEntity wxInfo
//        {
//            get
//            {
//                weixinUserEntity temp = new weixinUserEntity
//                {

//                    AppId = "wx25bf1ed19bab0096",
//                    AppSecret = "d1067af0669ab1d98ee27adad3f98c5c",
//                };
//                return temp;
//            }

//        }

//        string CurrOpenid
//        {
//            get
//            {
//                return Request["openid"];
//            }
//        }

//        public GiftEnum RandomToResult()
//        {
//            if (System.Configuration.ConfigurationManager.AppSettings["isSendRedpack"] != "1")  //如果账户没钱了，则设置抽奖几率为0
//            {
//                return GiftEnum.None;
//            }
//            else
//                //判断时间,大于11点抽中红包的几率位0
//                if (System.DateTime.Now.Hour > 23 || System.DateTime.Now.Hour < 8)
//                {
//                    return GiftEnum.None;
//                }
//                else
//                    if (GetSumMoney() > 25000)
//                    {
//                        return GiftEnum.None;
//                    }
//                    else
//                    {
//                        int temp = new Random().Next(1, 1001);
//                        if (temp >= 250 && temp <= 300) //30%的机会中辣条
//                        {
//                            return GiftEnum.LaTiao;
//                        }
//                        if (temp > 500 && temp <= 550)
//                        {
//                            return GiftEnum.TiaoTiaoTang;
//                        }
//                        if (temp > 550 && temp <= 600)
//                        {
//                            return GiftEnum.DanGong;
//                        }
//                        if (temp == 1000)
//                        {
//                            return GiftEnum.DaLiBao;
//                        }

//                        return GiftEnum.None;
//                    }
//        }

//        private double GetSumMoney()
//        {
//            string key = actDataPreFix + "SumMoney";
//            object obj = mmtols.Get(key);
//            if (obj != null)
//            {
//                return (double)obj;
//            }
//            else
//            {
//                lock (lockObj)
//                {
//                    double tempMoney = Active910BLL.GetSumMoney();
//                    mmtols.Add(key, tempMoney, 3, 0, 0);
//                    return Active910BLL.GetSumMoney();
//                }

//            }
//        }

//        private void SetSumMoneyToCache(double addMoney)
//        {
//            string key = actDataPreFix + "SumMoney";
//            double tempMoney = GetSumMoney();
//            tempMoney = tempMoney + addMoney;
//            mmtols.Add(key, tempMoney, 3, 0, 0);
//        }

//        // public

//        public ActiveDataFor910Entity GetCurrentActiveData(string openid)
//        {
//            if (openid != null)
//            {
//                ActiveDataFor910Entity entity = mmtols.Get<ActiveDataFor910Entity>(actDataPreFix + openid);
//                if (entity == null)  //如果缓存中不存在数据，则从数据库中取 
//                {
//                    entity = Active910BLL.GetActiveData910(openid);
//                    if (entity != null)//如果是从数据库中取出，说明该用户已参与过抽奖
//                    {
//                        entity.IsChouJiang = true;
//                        mmtols.Add(actDataPreFix + openid, entity, 240, 0, 0);
//                    }
//                }
//                return entity;
//            }
//            else
//            {
//                return null;
//            }
//        }


//        [WeiXinUserAgentFilter]
//        [IsOpenFilter]
//        public ActionResult Index()
//        {
//            if (CurrOpenid != null)
//            {

//                //是否清除缓存
//                //  mmtols.Remove(actDataPreFix + CurrOpenid);
//                ActiveDataFor910Entity entity = GetCurrentActiveData(CurrOpenid);  //获取到当前openid的活动数据
//                if (entity == null)
//                {
//                    GiftEnum result = RandomToResult();
//                    ActiveDataFor910Entity tempEntity = new ActiveDataFor910Entity()
//                    {
//                        openid = CurrOpenid,
//                        gift = (int)result,
//                        isJackpot = result != GiftEnum.None ? 1 : 0,
//                        IsChouJiang = false
//                    };
//                    mmtols.Add(actDataPreFix + CurrOpenid, tempEntity, 240, 0, 0);
//                    ViewBag.Result = (int)result;
//                }
//                else
//                {
//                    if (entity.IsChouJiang) //如果该用户已经进行过抽奖
//                    {
//                        if (entity.is2Chance == 1) //那么判断是否有第二次机会进行抽奖
//                        {
//                            //如果有，则给该用户重新写入一次抽奖结果
//                            GiftEnum result = RandomToResult();
//                            entity.isJackpot = result != GiftEnum.None ? 1 : 0;
//                            entity.gift = (int)result;
//                            mmtols.Add(actDataPreFix + CurrOpenid, entity, 240, 0, 0);
//                            ViewBag.Result = (int)result;
//                        }
//                        else
//                        {
//                            return Redirect("ResultPage?openid=" + CurrOpenid);
//                        }
//                    }
//                    else
//                    {
//                        ViewBag.Result = entity.gift;
//                    }
//                }
//                ViewBag.openid = CurrOpenid;
//            }
//            else
//            {
//                return Content("缺少参数！");
//            }
//            InitSharas(Request.RawUrl);
//            return View();
//        }



//        /// <summary>
//        /// 游戏结束,接收游戏数据
//        /// </summary>
//        /// <returns></returns>
//        [HttpPost]
//        public ActionResult PlayedGame()
//        {
//            try
//            {


//                ActiveDataFor910Entity entity = this.GetCurrentActiveData(CurrOpenid);
//                if ((GiftEnum)entity.gift == GiftEnum.DaLiBao)  //如果抽中的是大礼包，我们需要验证openid的真实性
//                {
//                    WeixinUserInfo_ReturnJson user = ActCommon.GetUserInfoByOpenId(CurrOpenid, wxInfo.AppId, wxInfo.AppSecret);
//                    if (user.openid != CurrOpenid)
//                    {
//                        return Content("3");
//                    }
//                }

//                if (!entity.IsChouJiang)
//                {

//                    //往数据库中插入数据
//                    double t_money = GiftMapMoney((GiftEnum)entity.gift);

//                    int count = Active910BLL.InsertNewActiveData(entity, actName, t_money > 0 ? 1 : 0, t_money, 0);
//                    if (count > 0)
//                    {
//                        entity.IsChouJiang = true;
//                        SetSumMoneyToCache(t_money);
//                    }
//                }
//                else
//                {
//                    if (entity.is2Chance == 1)  //表示第二次提交
//                    {

//                        double t_money = GiftMapMoney((GiftEnum)entity.gift);
//                        int count = Active910BLL.InsertNewActiveData(entity, actName, t_money > 0 ? 1 : 0, t_money, 1);
//                        if (count > 0)
//                        {
//                            entity.is2Chance = 2;
//                        }
//                    }
//                }
//                mmtols.Add(actDataPreFix + CurrOpenid, entity, 240, 0, 0);
//                return Content("1");
//            }
//            catch (Exception)
//            {
//                return Content("0");

//            }

//        }
//        [IsOpenFilter]
//        [WeiXinUserAgentFilter]
//        public ActionResult ResultPage()
//        {

//            ActiveDataFor910Entity entity = this.GetCurrentActiveData(CurrOpenid);
//            if (entity == null)
//            {
//                return Content("没有找到数据！");
//            }
//            else
//            {
//                string img = GiftMapImg((GiftEnum)entity.gift);
//                ViewBag.Img = img;
//                ViewBag.Gift = entity.gift;
//                ViewBag.openid = CurrOpenid;
//                ViewBag.is2Chance = entity.is2Chance;
//            }
//            InitSharas(Request.RawUrl);
//            return View();

//        }
//        /// <summary>
//        /// 奖品对应的奖金
//        /// </summary>
//        /// <returns></returns>
//        public double GiftMapMoney(GiftEnum giftenum)
//        {
//            switch (giftenum)
//            {
//                case GiftEnum.None: return 0;
//                case GiftEnum.DaLiBao: return 0;
//                case GiftEnum.LaTiao: return 1;
//                case GiftEnum.DanGong: return 2;
//                case GiftEnum.TiaoTiaoTang: return 1;
//                default: return 0;
//            }
//        }

//        public string GiftMapImg(GiftEnum giftenum)
//        {
//            switch (giftenum)
//            {
//                case GiftEnum.None: return "prize01_top.png";
//                case GiftEnum.DaLiBao: return "prize03.png";
//                case GiftEnum.LaTiao: return "prize02.png";
//                case GiftEnum.DanGong: return "prize04.png";
//                case GiftEnum.TiaoTiaoTang: return "prize05.png";
//                default: return "";
//            }

//        }

//        /// <summary>-
//        /// 当有分享动作的时候
//        /// </summary>
//        /// <returns></returns>
//        [HttpPost]
//        public ActionResult ShareAct()
//        {
//            try
//            {
//                string shareType = Request["sharaType"];
//                Active910BLL.InsertShareRecord(actName, CurrOpenid, int.Parse(shareType));
//                ActiveDataFor910Entity entity = this.GetCurrentActiveData(CurrOpenid);
//                if (entity.IsChouJiang && entity.isJackpot == 0 && entity.is2Chance == 0) //如果没有中奖，并且没有进行第二次抽奖
//                {
//                    entity.is2Chance = 1;
//                    mmtols.Add(actDataPreFix + CurrOpenid, entity, 240, 0, 0);
//                }
//            }
//            catch (Exception)
//            {
//                return Content("0");
//            }
//            return Content("1");
//        }

//        [HttpGet]
//        public ActionResult ConfigPage()
//        {
//            return View();
//        }
//        /// <summary>
//        /// 
//        /// </summary>
//        /// <returns></returns>
//        [HttpPost]
//        [WeiXinUserAgentFilter]
//        public ActionResult TiXian()
//        {
//            if (CurrOpenid != null)
//            {

//                double money;
//                string result;
//                ActivityDataBLL.LockRedBag(CurrOpenid, actName, out money, out result);
//                if (result == "")
//                {
//                    if (this.wxInfo != null)
//                    {
//                        string orderNum = "";
//                        string sendMessage;
//                        //因为接口的单位是分，所以用money*100
//                        string sendBagResult = "";
//                        if (System.Configuration.ConfigurationManager.AppSettings["isrealySendBag"] == "1")
//                        {
//                            sendBagResult = WeiXinPayBLL.sendRedBag(ActCommon.GetSendRedPackConfigByActName(actName), CurrOpenid, money * 100, out orderNum, out sendMessage);
//                        }
//                        MyTrace.get().add("sendBagResult：" + sendBagResult + ",money:" + money + ", openId:" + CurrOpenid);
//                        ActivityDataBLL.UpadateRedBag2getted(CurrOpenid, actName, sendBagResult == "", money);
//                        if (sendBagResult == "")
//                        {
//                            return Content("提现成功，请回到公众号查看！");
//                        }
//                        else
//                        {
//                            return Content("红包提取失败,请稍后重试！");
//                        }
//                    }
//                    else
//                    {
//                        return Content("红包提取失败,请稍后重试！");
//                    }
//                }
//                else
//                {
//                    return Content(result);
//                }

//            }
//            else
//            {
//                return Content("缺少参数");
//            }

//        }


//        public ActionResult AddressInfoPage()
//        {
//            if (CurrOpenid != null)
//            {
//                ActiveDataFor910Entity entity = this.GetCurrentActiveData(CurrOpenid);
//                if (entity.IsChouJiang && entity.gift == (int)GiftEnum.DaLiBao)
//                {
//                    //由于是实物，我们要验证openid的真实性
//                    ViewBag.openid = CurrOpenid;
//                    InitSharas(Request.RawUrl);
//                    return View();
//                }
//                else
//                {
//                    return Content("您没有抽中大礼包");
//                }
//            }
//            else
//            {
//                return Content("缺少参数！");
//            }
//        }

//        [HttpPost]
//        [WeiXinUserAgentFilter]
//        public ActionResult ReceiptAddressInfo()
//        {
//            try
//            {
//                string name = Request["name"];
//                string phone = Request["phone"];
//                string address = Request["address"];
//                string isGumin = Request["isGumin"];
//                AddressInfoFor910ActEntity adressEntity = new AddressInfoFor910ActEntity();
//                adressEntity.AName = name;
//                adressEntity.phone = phone;
//                adressEntity.AddressInfo = address;
//                adressEntity.openid = CurrOpenid;
//                adressEntity.isGumin = int.Parse(isGumin);
//                Active910BLL.InsertAddressInfo(adressEntity);
//                return Content("1");
//            }
//            catch (Exception ex)
//            {
//                if (ex.Message.Contains("唯一索引"))
//                {
//                    return Content("2");
//                }
//                return Content("0");

//            }

//        }


//        private void InitSharas(string rawUrl)
//        {
//            var timestamp = WeiXinJsSign.getTimestamp();
//            var nonceStr = WeiXinJsSign.getNoncestr();
//            ViewBag.timestamp = timestamp;
//            ViewBag.nonceStr = nonceStr;
//            ViewBag.wxInfo = this.wxInfo;
//            string url = Config.Host_Url2 + rawUrl;
//            ViewBag.signature = WeiXinJsSign.getWxSign(nonceStr, timestamp, this.wxInfo, url);
//        }



//        //活动数据统计页面
//        public ActionResult TjPage()
//        {
//            DataTable dt = Active910BLL.GetTJData();
//            ViewBag.dt = dt;
//            return View();
//        }

//    }
//}
